This application claims the benefit of the priority date of our earlier filed British Application No. 0123422.8, entitled xe2x80x9cImproved Memory Controllerxe2x80x9d, filed on Sep. 28, 2001.
1. Field of the Invention
The present invention relates generally to flash memory systems including controllers for controlling flash memory devices and particularly to a memory controller for controlling access to non-volatile memory device(s) of a solid state memory system.
2. Description of the Prior Art
Within the electronics industry, the use of solid state memory systems to try to emulate magnetic disc storage systems in computer systems is known. However, the cost of solid state memory systems prevents compatability between the two systems.
In solid state memory systems, it is known for firmware to be executed by a microprocessor within a controller to be stored in a Read Only Memory (ROM) within the controller. Such firmware may allow the controller to manage the solid state storage medium according to algorithms which create the logical characteristics of a magnetic disk device. The ROM may be of several forms, such as mask programmable ROM or flash ROM. In each case, the ROM adds substantially to the cost of the solid state storage system. A mask programmable ROM has the additional disadvantage of being very inflexible as its contents are fixed and may only be changed by a change to the controller design. The use of a flash ROM within the controller has the drawback of adding considerably to the complexity of the manufacturing process for a controller integrated circuit. Therefore, increasing the cost of storing firmware for execution by a processor, within a controller, for flash memories, adds to the increased cost of such solid state memory systems over magnetic disk storage systems.
In a development to provide an improved system, U.S. Pat. No. 5,606,660, entitled xe2x80x9cMethod and Apparatus for Combining Controller Firmware Storage And Controller Logic In A Mass Storage Systemxe2x80x9d, issued on Feb. 25, 1997 to Estakhri et al., describes an arrangement wherein firmware code is loaded from flash memory to a volatile memory within the controller. This is done under the control of a processor in the controller, which executes firmware code stored in a ROM within the controller. However, this arrangement has the disadvantage that a ROM is required within the controller, the contents of which cannot be modified without changing the controller design. Thus, the cost of such a solid state memory system is still higher than a magnetic disc storage system.
Thus, a need arises to obviate or mitigate at least one of the aforementioned problems.
According to a first aspect of the present invention, there is provided a memory system having a controller and a non-volatile memory storing firmware for start up and for normal operation of the system, the controller comprising, a volatile memory; and a processor; wherein the controller is arranged to operate during initialization or configuration of the system so that the start up firmware stored in the non-volatile memory is loaded into the volatile memory under hardware control by the controller and with the processor halted, the start up firmware in the volatile memory being subsequently executed by the processor.
Preferably the volatile memory is of a size that only a part of the total firmware contained in the non-volatile memory can be contained in the volatile memory at any one time, said part being sufficient to accommodate the start up firmware.
Conveniently, the controller is arranged to operate after start up such that firmware code executed by the processor from volatile memory from time to time loads further firmware code from the non-volatile memory to the volatile memory for subsequent execution by the processor.